package com.qqin.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.qqin.exeption.ServiceException;
import com.qqin.mapper.CommentMapper;
import com.qqin.pojo.Comment;
import com.qqin.pojo.PageBean;
import com.qqin.pojo.dto.CommUser;
import com.qqin.service.CommentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;

@Service
public class CommentServiceImpl implements CommentService {
    @Autowired
    private CommentMapper commentMapper;

    //分页查询所有评论。
    @Override
    public PageBean page(Integer page, Integer pageSize) {
        PageHelper.startPage(page, pageSize);

        List<Comment> comments = commentMapper.selectAll();
        Page<Comment> p = (Page<Comment>) comments;

        return new PageBean(p.getTotal(), p.getResult());
    }

    //根据商品ID查询与该商品相关的评论信息。
    @Override
    public List<CommUser> selectByGoods(Integer commentGoods) {

        return commentMapper.selectByGoods(commentGoods);
        //返回一个List<CommUser>，其中CommUser封装了评论信息和用户信息的实体类。
    }

    //添加一条评论。
    @Override
    public void add(Comment comment) {

        if (comment.getContent() == null || comment.getContent().equals("")) {
            throw new ServiceException("请输入评论内容");
        }

        LocalDateTime nowTime = LocalDateTime.now();//获取当前时间，并将其设置为评论的创建时间。
        comment.setCreateTime(nowTime);

        commentMapper.add(comment);
    }

}
